// 配置axios
import axios from "axios"

// 引入element-ui的弹框
import { ElMessageBox } from 'element-plus'


let http = axios.create({
    // 请求的基础地址
    // baseURL: "/api",
    // 超时设置
    timeout: 1000 * 20,
    // 携带凭证
    withCredentials: true,

    headers: {
        'content-type': 'application/json'
    }
})

// 请求拦截器
// 所有请求的入口，所有的请求都需要通过这个入口才能进入服务器，这些可以给请求添加一些额外的属性
// 比如请求头，请求参数等等

http.interceptors.request.use(config => {
    // 放行


    // token一般是携带在请求头,也可以携带在query,body

    let token = sessionStorage.getItem('bm-token')

    config.headers.Authorization = `Bearer ${token}`


    return config
})




// 响应拦截器
// 所有响应回来的数据都需要先通过这个出口，响应拦截器一般可以根据后台返回的一些错误提示码，通过弹窗的模式，提示用户

// 统一处理后台反馈

// http.interceptors.response.use(config => {
//     console.log( config);
//     let { states, msg } = config.data
//     if (states) {
//         // 如果是true 说明返回的数据是正确的
//         return config
//     } else {
//         // 进行全局弹框提示
//         ElMessageBox({
//             title: '错误提示',
//             type: 'error',
//             message: msg,
//         })
//         return Promise.reject()
//     }
// })



export default http